// 角色权限配置
export const ROLES = {
  SUPERADMIN: 'superadmin',
  ADMIN: 'admin',
  USER: 'user'
}

// 角色显示名称
export const ROLE_LABELS = {
  [ROLES.SUPERADMIN]: '超级管理员',
  [ROLES.ADMIN]: '管理员',
  [ROLES.USER]: '普通用户'
}

// 角色权限配置
export const ROLE_PERMISSIONS = {
  [ROLES.SUPERADMIN]: {
    // 超级管理员拥有所有权限
    canManageUsers: true,
    canManageDevices: true,
    canManageSpareParts: true,
    canManageDocuments: true,
    canManageReports: true,
    canManageStandards: true,
    canViewAllData: true,
    canDeleteData: true,
    canExportData: true,
    canImportData: true,
    canManageSystem: true
  },
  [ROLES.ADMIN]: {
    // 管理员拥有大部分管理权限
    canManageUsers: true,
    canManageDevices: true,
    canManageSpareParts: true,
    canManageDocuments: true,
    canManageReports: true,
    canManageStandards: true,
    canViewAllData: true,
    canDeleteData: true,
    canExportData: true,
    canImportData: true,
    canManageSystem: false
  },
  [ROLES.USER]: {
    // 普通用户只有查看和基本操作权限
    canManageUsers: false,
    canManageDevices: false,
    canManageSpareParts: false,
    canManageDocuments: false,
    canManageReports: true, // 可以创建和编辑自己的报告
    canManageStandards: false,
    canViewAllData: true,
    canDeleteData: false,
    canExportData: true,
    canImportData: false,
    canManageSystem: false
  }
}

// 检查用户是否有特定权限
export function hasPermission(userRole, permission) {
  if (!userRole || !ROLE_PERMISSIONS[userRole]) {
    return false
  }
  return ROLE_PERMISSIONS[userRole][permission] || false
}

// 检查用户是否为管理员（包括超级管理员）
export function isAdmin(userRole) {
  return userRole === ROLES.ADMIN || userRole === ROLES.SUPERADMIN
}

// 检查用户是否为超级管理员
export function isSuperAdmin(userRole) {
  return userRole === ROLES.SUPERADMIN
}

// 获取角色显示名称
export function getRoleLabel(userRole) {
  return ROLE_LABELS[userRole] || '未知角色'
}

// 获取所有可用角色
export function getAvailableRoles() {
  return Object.keys(ROLES).map(key => ({
    value: ROLES[key],
    label: ROLE_LABELS[ROLES[key]]
  }))
} 